package com.gxa.eshop.core.service;

import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 所有Service通用的基本Service类型
 * @param <T> 目标业务类型
 */
public interface BaseService<T> {

    public T selectById(Integer id);

    public List<T> select(T t);

    public List<T> selectByLike(T t) throws IllegalAccessException;

    public List<T> selectAll();

    /**
     * 在查询(模糊查询)的基础上实现分页的方法
     * @param page 页码
     * @param size 每页记录数
     * @param t 带有查询条件的对象
     * @return PageHelper的分页对象
     */
    public PageInfo<T> selectByPage(Integer page, Integer size, T... t);

    public void add(T t);

    Integer updateById(T t);

    public void deleteById(Integer id);
}